package com.hskn.hss.module.grid.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.hskn.hss.entity.LatLngEntity;
import com.hskn.hss.module.carTrackOriginal.to.FacilitiesVo;
import com.hskn.hss.module.grid.vo.GridCheckworkVo;
import com.hskn.hss.module.tlfacilities.entity.TlFacilities;
import com.hskn.hss.module.tlfacilitietype.entity.TlFacilitiesType;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * <p>
 *
 * </p>
 *
 * @author hskn
 * @since 2021-05-08
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class Grid implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 网格id
     */
    @TableId(value = "grid_id", type = IdType.ASSIGN_UUID)
    private String gridId;

    /**
     * 网格名称
     */
    private String name;

    /**
     * 所属机构id
     */
    private String depid;
    private String depName;

    /**
     * 负责人uid
     */
    private String managerId;
    private String managerName;

    /**
     * 网格类型，1区域，2线路，3路段
     */
    private Integer type;

    /**
     * 区域类型，1标记点，2行政区域，3圆形区域，4矩形区域，5多边形区域，6自定义路段，7路段规划，8行驶轨迹规划
     * 类型选择区域和路段时的参数
     */
    private Integer areaType;

    /**
     * 经度
     */
    private String lng;

    /**
     * 纬度
     */
    private String lat;

    /**
     * 半径，单位米
     */
    private Double radius;

    /**
     * 经纬度坐标点集合
     */
    private String lnglat;

    /**
     * 备用
     */
    private String lnglat2;

    /**
     * 网格等级id
     */
    private String levelid;
    private String levelName;

    /**
     * 父级路段id，只在网格类型为路段时有
     */
    private String parentGridIds;
    /**
     * 父级路段名称
     */
    private String parentGridNames;

    /**
     * 规划里程 单位km
     */
    private Double km;

    /**
     * 面积 平方公里
     */
    private Double area;

    /**
     * 线宽，单位米，类型选择路段时的参数
     */
    private Double lineWidth;

    /**
     * 路段ids，多个中间用“,”分割，类型选择线路时的参数
     */
    private String sectionIds;

    /**
     * 线路包含的路段名称，多个用“,”隔开
     */
    private String sectionNames;

    /**
     * 绑定设施对象ids，多个中间用“,”分割
     */
    private String bindObj;

    /**
     * 绑定人ids，多个中间用“,”分割
     */
    private String bindPersonIds;

    /**
     * 绑定车ids，多个中间用“,”分割
     */
    private String bindCarIds;

    /**
     * 是否启用，1启用0未启用
     */
    private Integer isEnable;

    /**
     * 描边宽度
     */
    private Integer strokeWidth;

    /**
     * 颜色标识，1蓝色，2绿色，3黄色，4紫色，5红色
     */
    private String color;

    /**
     * 创建人uid
     */
    private String createUid;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 更新时间
     */
    private Date updateTime;
    /**
     * 监管开始时间
     */
    private String startTime;

    /**
     * 监管结束时间
     */
    private String endTime;
    /**
     * 类型(0网格 1电子围栏)
     */
    private Integer gridType;
    /**
     * 更新人uid
     */
    private String updateUid;
    /**
     * 是否路牌，1是，0不是
     */
    private Integer isGuideboard;
    /**
     * 允许提前打卡
     */
    private Integer startWorkPunchCard;
    /**
     * 允许延后打卡
     */
    private Integer endWorkPunchCard;
    /**
     * 迟到
     */
    private Integer laterIn;
    /**
     * 早退
     */
    private Integer leaveEarly;
    /**
     * 矿工
     */
    private Integer noWork;
    @TableField(exist = false)
    private List<FacilitiesVo> facilitiesVoList;

    @TableField(exist = false)
    private List<Grid> Children;

    @TableField(exist = false)
    private String gridIds;
    @TableField(exist = false)
    private List<GridCheckwork> gridCheckworkList;
    @TableField(exist = false)
    private List<GridCheckworkVo> gridCheckworkVoList;
}
